Method and system for generating fixed transit routes

ABSTRACT

A method and system for generating fixed transit routes is provided. A first set of street network segments within a first threshold distance from a starting point is identified for a pattern inputted by a user. A proxy first point along each of the street network segments in the first set is also identified. A second set of street network segments within a second threshold distance from an ending point is identified for the pattern inputted by the user. A proxy second point along each of the street network segments in the second set is also identified. A best path for the pattern is determined including any one of the proxy first points along the street network segments in the first set and any one of the proxy second points along the street network segments in the second set.

FIELD OF THE INVENTION

The present invention relates generally to transit. In particular, theinvention relates to a method and system for generating fixed transitroutes.

BACKGROUND OF THE INVENTION

Fixed-route transit is known. A set of fixed transit routes isestablished for a geographic area, and a schedule is set for each. Thefixed transit routes and the schedules can be selected based on manyfactors, including population and ridership distribution, street routesuitability and safety, employment centers, etc. Fixed route transit istypically subsidized by metropolitan, state/provincial and/or federalgovernment. As a result, it is desirable to provide such fixed-routetransit services as efficiently as possible.

Some transit organizations that provide fixed-route transit servicesreview and modify their fixed transit routes frequently. These changesmay be made in response to changes in ridership along the currentroutes, changing population distributions, changes in available funding,changes in the availability of vehicles and/or operators, school anduniversity calendar changes, etc. When such transit organizations modifytheir fixed transit routes, they typically re-generate a transit routemap by hand. The transit route map is generated by tracing each fixedtransit route over a street network map. Each fixed transit route caninclude a number of patterns. Patterns are the paths followed by avehicle from one end of a route to another end. The outgoing trip in onedirection is generally treated as a separate pattern from the incomingtrip along the other direction for a fixed transit route. Each of thesetwo patterns has timing information for stops along the route. Further,the vehicle path may be altered during some periods of the day or onweekends. For example, a vehicle may be diverted away from a busyintersection during rush hour. A separate pattern is defined todemarcate the new path taken by the vehicle. Each pattern must be tracedfor a fixed transit route. The process of tracing each of the patternsof each fixed transit route for a transit network can take a significantamount of time, weeks in many cases.

Currently, computer systems exist for generating transit route maps.Such computer systems present a street map to a user to enable the userto input patterns that make up the fixed transit routes. Each pattern isinputted by a user by marking on the street map the starting and endingpoints of the pattern and, optionally, a number of intermediate pointsalong the pattern. The computer system then determines a path betweenthe points defined by the user using a street routing algorithm and astreet network database. The street network database stores streetnetwork segments. Each street network segment represents a stretch ofroad between points at which more than one path is available (i.e., anintersection). The street routing algorithm creates projections bylinking street network segments.

The street routing algorithm requires a starting point and an endingpoint to generate a pattern along a street network. The computer systemmaps the starting point and ending point for a pattern provided by auser onto a street network in order to determine these inputs for thestreet routing algorithm. In particular, the computer system maps thestarting point and ending point inputted by the user by determining theclosest street network segments to each. In the case where two or morestreet network segments are equidistant to the starting or ending point,one of the street network segments is selected randomly. If the selectedstreet network segment adjacent the starting point is a one-way street,the start of the pattern generated by the street routing algorithm maytravel further away from the ending point. Similarly, if the selectedstreet network segment adjacent the ending point is a one-way street,the end of the pattern generated by the street routing algorithm mayovershoot the ending point before returning to it. Even if the selectedadjacent street network segment is not one-way, it may yield aless-than-desirable route.

It can be desirable to generate fixed transit routes that have expectedtravel times of a certain length or less in some cases. By providingservice whereby vehicles are expected to depart at the same number ofminutes past the hour for each hour for periods, or all, of the day,clients can more easily plan their trips using the fixed-route transitservice. In such cases, there is benefit to having the expected roundtrip time for a vehicle to perform the fixed transit route be under anhour. If the expected travel time for a vehicle to perform the fixedtransit route exceeds an hour, another vehicle and driver need to bedeployed along the route to adhere to the desired schedule. Thus, bydetermining better paths for fixed transit routes, both equipment andpersonnel costs can be kept down.

It is therefore an object of the invention to provide a novel method andsystem for generating fixed transit routes.

SUMMARY OF THE INVENTION

According to an aspect of the invention, there is provided a method forgenerating fixed transit routes, comprising:

identifying a first set of street network segments within a firstthreshold distance from a first point for a pattern inputted by a user,and a proxy first point along each of said street network segments insaid first set;

identifying a second set of street network segments within a secondthreshold distance from a second point for said pattern inputted by saiduser, and a proxy second point along each of said street networksegments in said second set; and

determining a best path for said pattern including any one of said proxyfirst points along said street network segments in said first set andany one of said proxy second points along said street network segmentsin said second set.

The identifying said first set can include:

determining a shortest distance from said first point to any one of saidstreet network segments adjacent said first point; and

determining said first threshold distance as a multiple of said shortestdistance.

The identifying said first set can further include setting said shortestdistance to a minimum threshold if said shortest distance is below saidminimum threshold.

The identifying said second set can include:

determining a shortest distance from said second point to any of saidstreet network segments adjacent said second point; and

determining said second threshold distance as a multiple of saidshortest distance.

The identifying said second set can further include setting saidshortest distance to a minimum threshold if said shortest distance isbelow said minimum threshold.

The method can further include iteratively performing said identifyingof said first and second sets and said determining for pairs of pointsalong said pattern, said pairs defining pattern sections. The method canstill further include connecting said pattern sections to form saidpattern.

The determining can include:

creating temporary network segments from said first point to each ofsaid proxy first points along said street network segments in said firstset, and from said second point to each of said proxy second pointsalong said street network segments in said second set;

determining said best path from said first point and along any one ofsaid temporary network segments to said proxy first points along saidstreet network segments in said first set to said second point via anyone of said temporary network segments to said proxy second points alongsaid street network segments in said second set.

The method can further include storing a portion of said best path fromsaid proxy first point adjacent said first point to said proxy secondpoint adjacent said second point.

According to another aspect of the invention, there is provided acomputer system for generating fixed transit routes, comprising:

computer-executable instructions executed by a processor identifying afirst set of street network segments within a first threshold distancefrom a first point for a pattern inputted by a user and a proxy firstpoint along each of said street network segments in said first set,identifying a second set of street network segments within a secondthreshold distance from a second point for said pattern inputted by saiduser and a proxy second point along each of said street network segmentsin said second set, and determining a best path for said patternincluding any one of said proxy first points along said street networksegments in said first set and any one of said proxy second points alongsaid street network segments in said second set.

According to a further aspect of the invention, there is provided acomputer-readable medium having stored thereon computer-executableinstructions implementing an application for generating fixed transitroutes, said application identifying a first set of street networksegments within a first threshold distance from a first point for apattern inputted by a user, and a proxy first point along each of saidstreet network segments in said first set, identifying a second set ofstreet network segments within a second threshold distance from a secondpoint for said pattern inputted by said user, and a proxy second pointalong each of said street network segments in said second set, anddetermining a best path for said pattern including any one of said proxyfirst points along said street network segments in said first set andany one of said proxy second points along said street network segmentsin said second set.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will now be described, by way of example only, withreference to the attached Figures, wherein:

FIG. 1 is a schematic diagram of a computer system for generating fixedtransit routes in accordance with an embodiment of the invention;

FIG. 2 shows a street network having a set of locations inputted by auser for defining a pattern of a fixed transit route;

FIG. 3 shows the street network of FIG. 2 having a path determined forthe pattern using the approach of the prior art;

FIG. 4 is a flow chart of the general method of generating fixed transitroutes using the computer system of FIG. 1;

FIG. 5 is a flow chart of the process for determining a path for apattern section in the method of FIG. 4;

FIG. 6 shows a region of the street network around a starting point ofthe pattern of FIG. 2 showing the distance to adjacent street networksegments;

FIG. 7 illustrates a region of the street network around the endingpoint of the pattern of FIG. 2 showing the distance to two adjacentstreet network segments;

FIG. 8 shows the street network of FIG. 2 showing the best-found pathfor the pattern using the method of FIG. 4; and

FIG. 9 shows various street network segments that may be identified aspossible starting street network segments for the pattern using analternative method.

DETAILED DESCRIPTION OF THE EMBODIMENTS

A computer system 20 for generating fixed transit routes in accordancewith an embodiment of the invention is shown in FIG. 1. As shown, thecomputer system 20 has a number of physical and logical components,including a central processing unit (“CPU”) 24, random access memory(“RAM”) 28, an input/output (“I/O”) interface 32, a network interface36, non-volatile storage 40, and a local bus 44 enabling the CPU 24 tocommunicate with the other components. The CPU 24 executes an operatingsystem, a fixed transit route-generating application. RAM 28 providesrelatively-responsive volatile storage to the CPU 24. The I/O interface32 allows for input to be received from one or more devices, such as akeyboard, a mouse, etc., and outputs information to output devices, suchas a display and/or speakers. The network interface 36 permitscommunication with other systems. Non-volatile storage 40 stores theoperating system and programs, including computer-executableinstructions for implementing the fixed transit route-generatingapplication. Additionally, the non-volatile storage 40 stores a streetnetwork database and fixed transit routes generated by the fixed transitroute-generating application. During operation of the computer system20, the operating system, the programs and the data may be retrievedfrom the non-volatile storage 40 and placed in RAM 28 to facilitateexecution.

The street network database stored in non-volatile storage 40 storesinformation about a set of street network segments for one or moregeographic areas. Each street network segment represents a stretch ofroad in a particular direction between points at which more than onepath is available (i.e., an intersection). Thus, a stretch of roadbetween two intersections along which travel is permitted in twodirections is represented with two street network segments, one in eachdirection. The street network database also stores information about thelength of and travel time data for each street network segment. Further,the street network database stores information regarding permissibleand/or impermissible transfers from one street network segment to anadjacent one. An example of this is times of day that a left turn ispermissible and impermissible at an intersection.

When fixed transit routes have to be generated, a user inputs data foreach pattern that makes up the fixed transit route. Each fixed routetypically includes two or more patterns. Patterns are the paths followedby a vehicle from one end of a route (i.e., a starting point) to anotherend (i.e., an ending point). The outgoing trip in one direction isgenerally treated as a separate pattern from the incoming trip along theother direction for a fixed route. Further, different patterns can bedefined for a fixed transit route for different periods of a day, ordifferent days. During heavier periods of traffic and/or passengerloads, a different pattern, or path, may be defined for a route. Forexample, a pattern may be defined for a fixed transit route to avoid anintersection that becomes very slow during rush hour. Also, a patternmay be defined to provide express service from a service area of a fixedtransit route that is more remote from an urban center. All of thesepatterns are defined in order to define the fixed transit route. Eachpattern has timing information for stops along the route relative to thestarting time for the pattern.

In order to define a pattern, a user identifies a starting point, anending point and, optionally, one or more intermediate points. This isenabled by a marking module of the fixed transit route-generatingapplication. The marking module enables the user to input these pointsby manually marking them on a street map presented on a display. Thegeolocation of each of the manually-entered points is determined inorder to store the points identified by the user. The marking may bedone using a mouse pointer and clicking on the street map, but can alsobe done in various other manners, such as via touching a touch screen.Alternatively, instead of manually entering the points on a map, thegeolocation for each point can be entered by the user as a set ofcoordinates, such as latitude and longitude.

FIG. 2 shows a set of points having been identified for a pattern on astreet map. The street map in this case includes a number of one-waystreets, marked with directional arrowheads. A starting point, labeledA, is shown adjacent an intersection. Two intermediate points, B and C,have been inputted to identify a general path that the pattern is tofollow. An ending point, labeled D, is also shown. As can be seen, theending point D lies in the middle of a block, not being immediatelyadjacent to any street network segment. As will be understood, onceentered, the points can be deleted, moved, etc.

Upon entry and approval of the points for a pattern by a user, themarking module saves the points for the pattern in non-volatile storage40. These points can then be used as a template for a similar pattern,such as for an alternate pattern for the same fixed transit route. Theassociation of the pattern with a particular fixed transit route is alsosaved.

The user identifies starting and ending points, together with anyintermediate points, for each pattern for each fixed transit route inthis manner. Once this has been done for all of the patterns of thefixed transit routes, the process of generating the fixed transit routescan be commenced by the user.

If street network segments are selected for the start and end of asection of a pattern solely based on proximity to the points at the endsof the section, and if street network segments are randomly selectedwhere there is a tie in proximity, the path determined for a patternsection and, thus, pattern and fixed transit route and can beless-than-desirable.

FIG. 3 shows such a resulting path 80 for the pattern of FIG. 2. In thiscase, if 4^(th) Street, a one-way street, is deemed to be closest to thestarting point A and is selected for generating the path, the patternmay veer away from the destination, D. Further, if 2^(nd) Street,another one-way street, is deemed to be the closest to the ending pointD and is selected for generating the path, the pattern may travel alonger path than necessary.

FIG. 4 shows the method of generating fixed transit routes using thecomputer system 20 of FIG. 1 generally at 100. In the method 100, thefixed route-mapping application determines sets of street networksegments within a threshold distance from the end points of sections ofa pattern inputted by a user. A pattern can be one section or dividedinto two or more sections. Pattern sections are demarcated by thestarting, intermediate and ending points inputted by the user for thepattern. Further, for each pattern section, a proxy first point isdetermined along each street network segment within a threshold distancefrom the first point of the pattern section, and a proxy second point isdetermined along each street network segment within a threshold distancefrom the second point of the pattern section. A proxy first point is thepoint along a street network segment determined to be closest to thefirst point of a pattern section. Similarly, a proxy second point is thepoint along a street network segment determined to be closest to thesecond point of the pattern section. Once the sets of street networksegments close to the end points of the pattern section and the proxyend point for each end point has been identified, the fixed transitroute-generating application uses a street routing algorithm todetermine the best path from the first point through the street networksegments in the first set and the street network segments in the secondset, to the second point. This is iteratively performed for each sectionof each pattern of each fixed transit route.

The method 100 commences with the selection of a fixed transit route(110). The fixed transit route-generating application retrieves all ofthe data for all of the patterns for a fixed transit route fromnon-volatile storage. Then, a pattern of the selected fixed transitroute is selected (120). Next, a next uncharted pattern section isselected (130). A section between two sequential points inputted for thepattern that has not yet been examined is chosen. The sections of thepattern are selected in the order of travel of the pattern. That is, thepattern section between the starting point and the intermediate pointnext along the pattern from the starting point is selected first, withsubsequent sections being selected thereafter. Thus, for the patternillustrated in FIG. 2, the pattern is divided into three sections (A-B,B-C and C-D), and the section between the starting point A and theintermediate point B is the first selected. Next, the path for theselected pattern section is determined (140).

FIG. 5 shows the method 140 of determining the path for the selectedpattern section in greater detail. First, the fixed transitroute-generating application identifies the street network segmentclosest to the first point of the selected pattern section (141). Thestreet network segment closest to the first end point (or “first point”)and the distance thereto are determined for the pattern section. Thefixed transit route-generating application reads the geolocationcoordinates for the first point and identifies street network segmentsin the street network database that are relatively close to the firstpoint. Each of these street network segments is then examined todetermine the shortest distance between it and the first point.Additionally, for each of these street network segments, the point alongits length closest to the first point (i.e., the proxy first point) isregistered. The fixed transit route-generating application identifiesthe street network segment closest to the first point based on theshortest distances calculated.

Once the street network segment closest to the first point has beenidentified, a first threshold distance is determined (142). The fixedtransit route-generating application sets the first threshold distanceas 20% larger than the shortest distance between the first point and thestreet network segment identified as being closest to the first point at141. Next, the street network segments within the first thresholddistance from the first point are identified (143). The fixed transitroute-generating application then determines which of the street networksegments are within the first threshold distance from the first point byexamining the shortest distances calculated for each at 141. The set ofstreet network segments within the first threshold distance from thefirst point is then stored in non-volatile storage 40, together with theproxy first point for each selected street network segment in the set.

FIG. 6 shows the region around the starting point A. The fixed transitroute-generating application identifies that street network segment 204is closest to the first point for the first pattern section, startingpoint A, at 141, even though street network segment 204 travels in adirection away from the second point B and ending point D. Inparticular, the fixed transit route-generating application determinesthat a proxy first point 212 along street network segment 204 is adistance 208 from the starting point A. As a result, the fixed transitroute-generating application sets the first threshold distance as 20%larger than distance 208 at 142. In examining all of therelatively-close street network segments, the fixed transitroute-generating application determines that two other street networksegments 216 are within the first threshold distance from the startingpoint A at 143. Street network segments 216 include one street networksegment traveling to the south-east and one traveling to the north-west.That is, distance 220 from the starting point A to a proxy first point224 is less than or equal to 1.2 times distance 208. Thus, the set ofstreet network segments identified at 143 include street network segment204 and street network segments 216.

Returning again to FIG. 5, the fixed transit route-generatingapplication then identifies the street network segment closest to thesecond point and the distance thereto (144). The fixed transitroute-generating application reads the geolocation coordinates for thesecond point and identifies street network segments in the streetnetwork database that are relatively close to the second point. Each ofthese street network segments is then examined to determine the shortestdistance between it and the second point. Additionally, for each ofthese street network segments, the point along its length closest to thesecond point (i.e., the proxy second point) is registered. The fixedtransit route-generating application identifies the street networksegment closest to the second point based on the shortest distancescalculated.

Once the street network segment closest to the second point has beenidentified, the second threshold distance is determined (145). The fixedtransit route-generating application sets the second threshold distanceas 20% larger than the shortest distance between the second point andthe street network segment identified as being closest to the secondpoint at 144. Then, the street network segments within the secondthreshold distance from the second point are identified (146). The fixedtransit route-generating application then determines which of the streetnetwork segments are within the second threshold distance from thesecond point by examining the shortest distances calculated for each at144. The set of street network segments within the second thresholddistance from the second point is then stored in non-volatile storage40, together with the proxy second point for each street network segmentin the set.

FIG. 7 shows the region around the ending point D during analysis of thelast section in the pattern of FIG. 2. The fixed transitroute-generating application identifies that street network segment 228is closest to the second point, ending point D, at 144, even thoughstreet network segment 228 travels to ending point D from an oppositedirection from the first point (i.e., the preceding intermediate pointC). In particular, the fixed transit route-generating applicationdetermines that a proxy second point 232 along street network segment228 is a distance 236 from the second point D. As a result, the fixedtransit route-generating application sets the second threshold distanceas 20% larger than distance 236. In examining all of therelatively-close street network segments, the fixed transitroute-generating application determines that one other street networksegment 240 is within the second threshold distance from the secondpoint D. Street network segment 240 travels along 1^(st) Street, whichis one-way at that point, traveling to the west. That is, distance 244from a proxy second point 248 to the ending point D is less than orequal to 1.2 times distance 236. Thus, the set of street networksegments identified at 146 for the last section of the pattern of FIG. 2includes street network segment 228 and street network segment 240.

Returning again to FIG. 5, once the set of street network segmentswithin the first threshold distance from the first point and the set ofstreet network segments within the second threshold distance from thesecond point are determined, the best path is determined using the setsof street network segments (147). The fixed transit route-generatingapplication uses a street routing algorithm to determine the best path.In particular, the street routing algorithm generates temporary streetnetwork segments from the first point to the proxy first point(s) andfrom the proxy second point(s) to the second point. Then, the streetrouting algorithm determines the shortest path from the first point tothe second point using the temporary street network segments and thestreet network. The best path is selected based on the shortest time totravel from the first to the second point. The fixed transitroute-generating application registers the portion of the best path thattraverses the street network, together with the expected time totraverse the best path and the distance for the same. Once the best pathfor the selected pattern section is registered, the fixed transitroute-generating application discards the temporary street networksegments between the first point and the proxy first points. Thetemporary street network segments can be cached for determining the bestpath for a subsequent pattern section.

Returning again to FIG. 4, once the fixed transit route-generatingapplication has determined and registered the path for a patternsection, it determines if there are any remaining pattern sections to bemapped for the pattern (150). If it is determined that there aresections remaining for the pattern for which the path has not beendetermined at 150, then the next uncharted section for the pattern isselected at 130. If, instead, it is determined that there are noremaining uncharted sections for the pattern at 150, then the patterngenerated from the paths for the pattern sections (160). The fixedtransit route-generating application joins together the paths for eachpattern section to generate the pattern.

Next, it is determined if there are unanalyzed patterns remaining forthe selected fixed transit route (170). If it is determined that thereare unmapped patterns for the selected fixed transit route, anotherpattern for the fixed transit route is selected for mapping at 120. If,instead, it is determined that there are no remaining unmapped patternsfor the selected fixed transit route at 170, the fixed transitroute-generating application determines if there are any remaining fixedtransit routes to be mapped (180). If it is determined that there areunmapped fixed transit routes, another fixed transit route is selectedfor mapping at 110. If, instead, it is determined that there are noremaining unmapped fixed transit routes at 180, the method 100 ends.

FIG. 8 shows a best-found path 252 for the pattern of FIG. 2 using themethod 100.

Once the fixed transit route-generating application has determined thepath for each pattern of each fixed transit route, it draws thesepatterns/fixed transit routes on a map for presenting to a user. Theuser may then manually select and modify any of the patterns/fixedtransit routes generated by the fixed transit route-generatingapplication.

In an alternative embodiment, the threshold distance for each point isdetermined as noted above, but is set equal to a minimum thresholddistance should the calculated threshold distance be less. This can beuseful, for example, where a first point is identified by a user near anintersection and may be very close to a one-way street traveling in adirection away from the second point. The minimum threshold distance maybe set to, for example, 15 yards.

FIG. 9 shows the street network of FIG. 2, wherein various streetnetwork segments 304 relatively close to the starting point A have beenfound to be within the threshold distance from the starting point Ausing this alternative approach.

Computer-executable instructions for implementing the fixed transitroute-generating application on a computer system could be providedseparately from the computer system, for example, on a computer-readablemedium (such as, for example, an optical disk, a hard disk, a USB driveor a media card) or by making them available for downloading over acommunications network, such as the Internet.

While the calculation of the threshold distances has been described withspecificity to a few particular approaches, other approaches forcalculating the threshold distances will occur to those of skill in theart. For example, the threshold distances can be determined using thedistance to two or more street network segments from a first or secondpoint. In another approach, the threshold distances can be calculatedusing polynomial equations.

In another embodiment, a path for a pattern section can be generatedfrom the end of the path determined for the previous pattern section.This can provide a more rapid path determination for the pattern in somecases.

While the computer system is shown as a single physical computer, itwill be appreciated that the computer system can include two or morephysical computers in communication with each other. Accordingly, whilethe embodiment shows the various components of the computer systemresiding on the same physical computer, those skilled in the art willappreciate that the components can reside on separate physicalcomputers.

One or more portions of the method may be executed by third parties. Forexample, the itinerary-planning system may be an external systemexecuted on a separate computer.

The above-described embodiments are intended to be examples of thepresent invention and alterations and modifications may be effectedthereto, by those of skill in the art, without departing from the scopeof the invention that is defined solely by the claims appended hereto.

1. A method for generating fixed transit routes, comprising: identifyinga first set of street network segments within a first threshold distancefrom a first point for a pattern inputted by a user, and a proxy firstpoint along each of said street network segments in said first set;identifying a second set of street network segments within a secondthreshold distance from a second point for said pattern inputted by saiduser, and a proxy second point along each of said street networksegments in said second set; and determining a best path for saidpattern including any one of said proxy first points along said streetnetwork segments in said first set and any one of said proxy secondpoints along said street network segments in said second set.
 2. Themethod of claim 1, wherein said identifying said first set comprises:determining a shortest distance from said first point to any one of saidstreet network segments adjacent said first point; and determining saidfirst threshold distance as a multiple of said shortest distance.
 3. Themethod of claim 2, further comprising: setting said shortest distance toa minimum threshold if said shortest distance is below said minimumthreshold.
 4. The method of claim 1, wherein said identifying saidsecond set comprises: determining a shortest distance from said secondpoint to any of said street network segments adjacent said second point;and determining said second threshold distance as a multiple of saidshortest distance.
 5. The method of claim 4, further comprising: settingsaid shortest distance to a minimum threshold if said shortest distanceis below said minimum threshold.
 6. The method of claim 1, furthercomprising: iteratively performing said identifying of said first andsecond sets and said determining for pairs of points along said pattern,said pairs defining pattern sections.
 7. The method of claim 6, furthercomprising: connecting said pattern sections to form said pattern. 8.The method of claim 1, wherein said determining comprises: creatingtemporary network segments from said first point to each of said proxyfirst points along said street network segments in said first set, andfrom said second point to each of said proxy second points along saidstreet network segments in said second set; determining said best pathfrom said first point and along any one of said temporary networksegments to said proxy first points along said street network segmentsin said first set to said second point via any one of said temporarynetwork segments to said proxy second points along said street networksegments in said second set.
 9. The method of claim 8, furthercomprising: storing a portion of said best path from said proxy firstpoint adjacent said first point to said proxy second point adjacent saidsecond point.
 10. A computer system for generating fixed transit routes,comprising: computer-executable instructions executed by a processoridentifying a first set of street network segments within a firstthreshold distance from a first point for a pattern inputted by a userand a proxy first point along each of said street network segments insaid first set, identifying a second set of street network segmentswithin a second threshold distance from a second point for said patterninputted by said user and a proxy second point along each of said streetnetwork segments in said second set, and determining a best path forsaid pattern including any one of said proxy first points along saidstreet network segments in said first set and any one of said proxysecond points along said street network segments in said second set. 11.A computer-readable medium having stored thereon computer-executableinstructions implementing an application for generating fixed transitroutes, said application identifying a first set of street networksegments within a first threshold distance from a first point for apattern inputted by a user, and a proxy first point along each of saidstreet network segments in said first set, identifying a second set ofstreet network segments within a second threshold distance from a secondpoint for said pattern inputted by said user, and a proxy second pointalong each of said street network segments in said second set, anddetermining a best path for said pattern including any one of said proxyfirst points along said street network segments in said first set andany one of said proxy second points along said street network segmentsin said second set.